1. Field of the Invention
The present invention generally relates to broadcast systems. More particularly, the present invention provides methods and apparatus for accessing synchronized data transmitted by a broadcaster in a broadcast system.
2. Description of the Related Art
In a conventional broadcasting system, a broadcaster transmits information in the form of audio, video, data, etc. over a medium such as air, cable, phone line (DSL, for example) that, in turn, can be received by any number of receivers. For example, transmitted radio waves can be received with a radio receiver tuned to a particular transmission channel. Using this conventional arrangement, typical broadcast communication is generally a one way medium since the receiver does not have control over the content nor the time of the broadcast transmission.
In a digital broadcast system, data can be transmitted in the form of data packets. One such data packet form is defined by the Encapsulated IP datagrams protocol, or by Streaming data in MPEG-2 Packetized Elementary Stream (PES). In the latter case, the transmitted data packets also have associated with them timing information indicating when a particular data packet is to be processed. For example, a Presentation Time Stamp (PTS) can be included in a data packet having a value indicating the time at which a unit of data is to be processed (presented). Such PTS values can be defined relative to a System Time Clock (STC), for example, as defined by ISO/IEC 13818-1.
Data packets could have both internal and external timing requirements. For example, in the MPEG-2 Packetized Elementary Stream (PES) protocol, external timing requirements typically imply that data from one stream must be synchronized with another stream of data. Transmitted broadcast data containing any type of timing information indicating when data should be processed is referred to herein as “synchronized data”. Any type of timing information included in a data packet is referred to herein as a “time stamp”.
FIG. 1 illustrates synchronized data packets 102–106 transmitted by a broadcaster (not shown). Each of the data packets 102–106 has an associated data segment D1 through D3 respectively, as well as an associated time stamp T1 through T3, respectively. For example, data packet 102 has the time stamp T1 indicating when to process the corresponding data segment D1. During a typical broadcast session, the synchronized data packets 102–106 are received by the digital T.V. receiver at a point of service through what is referred to as a broadcast channel.
As illustrated in FIG. 1, a broadcast channel 2 is subdivided into Video subchannel (V), an Audio subchannel (A), and two Data subchannels (Da and Db). A synchronized data packet with video, audio, data information, or any combination thereof, can be transmitted by the broadcaster through the appropriate sub-channel(s) and can be received by a receiver, such as a digital T.V. or analog T.V. with a proper decoder set-top box tuned to the particular broadcast channel. When the receiver is a digital T.V., circuitry within the digital T.V. processes the data portion of a data packet as well as the audio, and video information (if present) is transmitted in the respective subchannels based upon the corresponding time stamp. For example, processing the data packet 102 having video information (D1) requires the T.V. receiver to process the video data in such a way that the corresponding video image is displayed on a monitor coupled to the T.V. receiver during a time interval based upon the associated time stamp (T1). Thus, a T.V. receiver tuned to a particular channel must also access the associated synchronized data packet D1 and process the data included in the packet D1 all within the time constraints dictated by the time stamp T1.
In a similar manner, data is transmitted in a synchronized data packet on a data subchannel such as Da and Db. In many applications, such as interactive T.V., during what is referred to as synchronized processing, one must be able to process the data included in a data packet according to the time constraint indicated by the time stamp. For example, in applications such as interactive T.V., data can be processed by an interactive application program that is running on the digital T.V. and presented with audio and video in a synchronized manner.
Unfortunately, with conventional models, accessing and processing of synchronized data is problematic. This is partly attributed to the fact that a receiver does not have control over the time and the amount of data that can be transmitted by the broadcaster. To elaborate, FIG. 2 illustrates a conventional T.V. receiver 200. A tuner 204 included in the T.V. receiver 200 is tuned to a desired broadcast channel and receives the broadcast information transmitted on that channel. A demultiplexer 205 is used to divide the broadcast information into subchannels video (V), audio (A), data (D)a, and data (D)b. In this arrangement, synchronized data packets are received by the receiver 200 via a data subchannel, such as subchannel Da.
Typically, data packets are received as a single stream of data. For example, data packets 102–104 are stored in a buffer 208. Typically, the receiver 200 checks the buffer 208 to determine whether data is available for processing. In conventional models, the receiver 200 starts accessing data from the buffer 208 and sequentially accesses data packets 102, 104, and 106 in the order that they are received. To elaborate, the receiver 200 accesses synchronized data D1 of data packet 102 and processes it during a time interval defined by the time stamp T1. However, in some situations, data is transmitted at a higher rate than the receiver 200 can process it, in which case it is possible that the receiver 200 falls behind in processing. For example, while the receiver 200 is processing synchronized data packet 104, it is possible the time stamp T3 for processing and presentation of synchronized data packet 106 expires. Thus, the receiver 200 would be unable to process and present data in a timely manner since the data associated with the data packet 106 is lost.
One problem with conventional data accessing approaches is that buffer 208 has to be constantly checked to determine whether data is available for processing. This is an inefficient approach that wastes processing time. Another problem is that there is no mechanism to notify the receiver of loss of data, for example, as a result of buffer overwrite, due to a high transmission rate. Yet another problem is that when a receiver falls behind in processing synchronized data, there is no mechanism to allow the receiver to resynchronize with the broadcast transmission.
In view of the foregoing, there is a need for improved methods and apparatus for keeping track of and accessing synchronized data transmitted by a broadcaster.